/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Util;

import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;

/**
 *
 * @author Lucas
 */
public class Botao extends Sprites implements Drawable {
    //Verifica se o botão deve ser desenhado e se foi clicado
    boolean visible, clicked;
    //Ponto para verificar a posição em que o usuário clicou na tela
    Point p;

    public Botao(String filename, int x, int y, JPanel tela) {
        super(filename, x, y, 3);
        visible = true;

        //Verifica a posição do mouse quando o usuário mexe para ver se ele passou sobre o botão
        tela.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                p = e.getPoint();
                if (visible && getRect().contains(p)) {
                    status = 1;
                    img = imgs[status];
                } else {
                    status = 0;
                    img = imgs[status];
                }
            }
        });

        //Verifica a posição do mouse quando o usuário clica e solta o botão
        tela.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                p = e.getPoint();
                if (visible && getRect().contains(p)) {
                    status = 2;
                    img = imgs[status];
                    clicked = true;
                }
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                p = e.getPoint();
                if (visible && clicked) {
                    if (getRect().contains(p)) {
                        status = 1;
                    } else {
                        status = 0;
                    }
                    img = imgs[status];
                }
            }
        });
    }

    public void setVisible(boolean visible) {
        this.visible = visible;
    }

    public boolean isVisible() {
        return visible;
    }

    @Override
    public void draw(Graphics2D g2d, JPanel tela) {
        if(visible)
            g2d.drawImage(img, x, y, tela);
    }
}
